home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / MSD-DU10.ARC / MSD - PART 01 < prev    next >
Encoding:
Text File  |  2019-04-13  |  3.8 KB  |  100 lines

  1. ║CM:MSD - PART 01
  2. ║LM21:RM70:PP66:PG60
  3. ║P#1
  4. ║FT1:,,╨AGE <>
  5. ║AI-16
  6. $├000           "2.3" ╥╧═ VERSION NUMBER
  7.  
  8.  
  9.        ╙┼╘╠┼─   ╘URN ON ╠┼─ FOR CURRENT DRIVE.
  10.  
  11. $├003           ─ISABLE INTERRUPTS.
  12. $├004           ╘URN OFF BITS 0-2 OF ╠┴╘├╚╙ [$┴8].
  13. $├00┴           ╩╙╥ ╙┼╘─╠─ [$├02─] TO TURN ON SWITCHES FOR THE CURRENT DRIVE.
  14. $├00─           ┼NABLE INTERRUPTS AND RETURN.
  15.  
  16.  
  17.  
  18.        ┼╥╥╧╞╞   ├LEAR ERROR FLAGS
  19.  
  20. $├00╞           ├LEAR ┼╥╫╧╥─ [$4┼2┬] AND ┼╥├╘─╬ [$4┼2─].
  21. $├017           ╥ETURN.
  22.  
  23.  
  24.  
  25.        ╠┼─╧╞╞   ╘URN OFF ╠┼─ FOR CURRENT DRIVE.
  26.  
  27. $├018           ╩╙╥ ─╥╓╠╙╫ [$├04┬] TO GET BITS FOR CURRENT DRIVE.
  28. $├01┬           ╔NVERT BITS SO THE ╠┼─ IS TURNED OFF.
  29. $├01╞  ╠┼─┴     ╙AVE THE ╠┼─ SWITCH SETTINGS IN ╠┴╘├╚╙ [$┴8].
  30. $├021  ╠┼─┬     ╔F ─╒┴╠╞╠ [$┬7] IS ZERO (IE THIS IS A SINGLE DRIVE) THEN BRANCH TO ╠┼─├ LEAVING BIT 0 OF ╠┴╘├╚╙ SET.
  31. $├025           ├LEAR BIT 0 OF ╠┴╘├╚╙ [$┴8]. ╘HIS LEAVES THE POWER ╠┼─ ON FOR A DUAL DRIVE.
  32. $├027  ╠┼─├     ╘RANSFER ╠┴╘├╚╙ [$┴8] TO ╚─╫╔╠ [$┴000] AND RETURN.
  33.  
  34.  
  35.  
  36.        ╙┼╘─╠─   ╘URN ON SWITCHES FOR CURRENT DRIVE
  37.  
  38. $├02─           ╘URN BIT 0 OF ╠┴╘├╚╙ [$┴8] ON.
  39. $├02╞           ╩╙╥ ─╥╓╠╙╫ [$├04┬] TO GET BITS FOR THE CURRENT DRIVE.
  40. $├032           ╘URN ON SWITCHS IN ╠┴╘├╚╙ [$┴8] AND BRANCH (ALWAYS) TO ╠┼─┴.
  41.  
  42.  
  43.  
  44.        ┼╥╥╧╬    ╙ET ERROR FLAGS
  45.  
  46. $├036           ─ISABLE INTERRUPTS AND SET ┼╥╫╧╥─ [$4┼2┬] AND ┼╥├╘─╬ [$4┼2─] TO $07.
  47. $├03╞           ╘RANSFER ─╥╓╬╒═ [$54] TO ┼╥─╥╬╧ [$4┼2├].
  48. $├044           ╙ET ┼╥╠┼─ [$4├╞0] TO ZERO.
  49. $├049           ┼NABLE INTERRUPTS AND RETURN.
  50.  
  51.  
  52.  
  53.        ─╥╓╠╙╫   ╙ET SWITCHES FOR CURRENT DRIVE
  54.  
  55. $├04┬           ╟ET CURRENT DRIVE NUMBER FROM ─╥╓╬╒═ [$54].
  56. $├04─           ╔F ZERO THEN SET .┴ TO $03 ELSE SET .┴ TO $05.  ┴ VALUE %011 MEANS DRIVE 0 AND %101 MEANS DRIVE 1.
  57. $├054           ╥ETURN.
  58.  
  59.  
  60.  
  61.        ┼╥╥╠┼─   ╞LASH ERROR ╠┼─ SPECIFIED BY DRIVE #
  62.  
  63. $├055           ├LEAR LOW ORDER 3 BITS OF ╠┴╘├╚╙ [$┴8].
  64. $├05┬           ╔F ╘1 [$49] IS ZERO THEN BRANCH TO ┼╥╥╠┼─┴.
  65. $├05╞           ╘URN ON ╠┼─ SWITCH FOR DRIVE 0.
  66. $├063  ┼╥╥╠┼─┴  ╔F ╘2 [$4┴] IS ZERO THEN BRANCH TO ╠┼─┬.
  67. $├067           ╘URN ON ╠┼─ SWITCH FOR DRIVE 1 AND BRANCH TO ╠┼─┬.
  68.  
  69.  
  70.  
  71.        ╒NUSED   ╒NUSED  ╥╧═
  72.  
  73. $├06─..$├080    ╒NUSED ╥╧═ AREA.  ├ONTAINS $┴┴ IN EACH BYTE.
  74.  
  75.  
  76.  
  77.        ╒╘╠╧─╥   ╒TILITY LOADER ENTRY POINT
  78.  
  79. $├081           ┴ RETURN INSTRUCTION.  ╒TILITY LOADER NOT AVAILABLE IN ═╙─.
  80.  
  81.  
  82.  
  83.        ╨┴╥╙╪╤   ╨ARSE STRING IN COMMAND BUFFER AND EXECUTE
  84.  
  85. $├082           ├LEAR ╫┬┴═ [$┬─] FLAG.
  86. $├086           ├OPY ╠╙╘─╥╓ [$4├─╞] TO ─╥╓╬╒═ [$54] TO MAKE THE LAST DRIVE THE DEFAULT.
  87. $├08┬           ╩╙╥ ╧╦┼╥╥ [$┼72─] TO SET UP 00,╧╦,... AS THE ERROR MESSAGE
  88. $├08┼           ╔F BIT 7 OF ╧╥╟╙┴ [$59] IS CLEAR BRANCH TO ╨╙4 TO OPEN THE FILE.
  89. $├092           ═ASK OFF THE LOW ORDER 4 BITS AND IF $0╞ (THE COMMAND CHANNEL) THEN BRANCH TO ╨╙5 TO CONTINUE PARSING THE COMMAND.
  90. $├098  ╨╙4      ╩UMP TO ╧╨┼╬ [$─6╞─].
  91. $├09┬  ╨╙5      ╩╙╥ ├═─╙┼╘ [$├1─5] TO INTERPRET THE COMMAND AND SET UP CONTROL VARIABLES.
  92. $├09┼           ├OPY 1'ST CHARACTER OF COMMAND TO ├╚┴╥ [$4┼2┼].
  93. $├0┴3           ╙EARCH COMMAND TABLE ├═─╘┬╠ [$╞┼6╞...] FOR A MATCH WITH ├╚┴╥ [$4┼2┼].  ╔F A MATCH IS FOUND, .╪ WILL CONTAIN THE INDEX OF THE MATCH AND EXECUTION CONTINUES AT ╨╙20.
  94. $├0┬0           ╠OAD .┴ WITH $31 (┬┴─ ├╧══┴╬─) AND JUMP TO ├═─┼╥╥ [$├0╞─].
  95. $├0┬5  ╨╙20     ╙AVE THE COMMAND NUMBER (IN .╪) IN ├═─╬╒═ [$4┼29].
  96. $├0┬8           ├HECK FOR PRESENCE OF FILE NAMES IN COMMAND BY SEEING IF THE COMMAND NUMBER IS 9 OR HIGHER.
  97. $├0┬┴           ╔F THE COMMAND NUMBER IS < 9 THEN DON'T LOOK FOR FILE NAMES BY BRANCHING TO ╨╙30.
  98. $├0┬├           ╩╙╥ ╘┴╟├═─ [$├123] TO PARSE FILE NAMES AND BUILD THE FILE NAME TABLES, POINTERS, AND PATTERNS.
  99. $├0┬╞  ╨╙30     ╥ESTORE THE COMMAND NUMBER FROM ├═─╬╒═ [$4┼29], OBTAIN THE ADDRESS OF THE APPROPRIATE ╥╧═ ROUTINE FROM ├╩╒═╨╠ [$╞┼7┬] AND ├╩╒═╨╚ [$╞┼87], SAVE THE ╥╧═ ROUTINE ADDRESS IN ╘0 [$48], ╘1 [$49], AND EXECUTE IT BY AN INDIRECT JUMP TO THIS ADDRESS.
  100.